user_list = [
    {"user": 'user001', 'pwd': '123456', 'name': '张三', 'money': '100'},
    {'user': 'user002', 'pwd': '234567', 'name': '李四', 'money': '200'},
    {'user': 'user003', 'pwd': '345678', 'name': '王五', 'money': '300'},
]


# 定义一个函数，检查账号密码是否匹配
def is_match(user0, pwd0):
    flag = 0
    seq_a = -1
    for i in range(len(user_list)):
        # 匹配账号密码
        if user_list[i]['user'] == user0 and user_list[i]['pwd'] == pwd0:
            flag = 1  # 若匹配，标识符为1，返回后表示为真
            seq_a = i  # 若匹配，返回该成员的序列号
    return flag, seq_a


# 定义一个函数，显示账户信息
def show_account(seq_b):
    print("欢迎你，", user_list[seq_b]['name'])


# 登录
user = input("请输入您的账号：")
pwd = input("请输入登录密码：")
while not is_match(user, pwd)[0]:
    # 账户密码不匹配，需重新输入
    print("账号或密码错误，请重新输入")
    user = input("请输入您的账号：")
    pwd = input("请输入您的密码：")
seq = is_match(user, pwd)[1]  # 返回成员序列号
show_account(seq)  # 显示账户信息

# 运行系统
money = int(user_list[seq]['money'])
while True:
    # 输出图形用户界面
    print("=" * 2, "欢迎使用存取款一体机", "=" * 2)
    print("{0:1}{1:13}{2:15}".format(" ", "1.取款", "2.查询余额"))
    print("{0:1}{1:13}{2:15}".format(" ", "3.存款", "4.退出系统"))

    key = input("请输入您要操作的序号：")
    # 1.取款
    if key == "1":
        moneyOut = int(input("请输入您要取出的金额："))
        while moneyOut < 0:
            moneyOut = int(input("金额有误，请重新输入："))
        if moneyOut > money:
            print("您的余额不足，您当前账户余额为：", money)
        else:
            print("操作成功！请于出币口取走您的纸币")
            money -= moneyOut
            print("您当前账户余额为：", money)

    # 2.查询余额
    elif key == "2":
        print("您的余额为：", money)

    # 3.存款
    elif key == "3":
        moneyIn = int(input("请输入您要存入的金额："))
        while moneyIn < 0:
            moneyIn = int(input("金额有误,请重新输入："))
        money += moneyIn
        print("存入成功！")
        print("您现在的账户余额为：", money)

    # 4.退出系统
    elif key == "4":
        print("=" * 10, "再见", "=" * 10)
        break

    # 输入无效序号提示
    else:
        print("======无效的键盘输入======")

